home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / MAC / THINKC / 5 / CHASSIS_ / MENUUPDA.C < prev    next >
Text File  |  1992-05-14  |  3KB  |  103 lines

  1. /************************************************************************************/
  2. /*    MenuUpdate                                                                        */
  3. /*                                                                                    */
  4. /*    Controls activation of menu items.                                                */
  5. /************************************************************************************/
  6.  
  7. #include "MyHeaders.h"
  8.  
  9. int MenuUpdate(int WType)
  10. {
  11.  
  12.     Handle        menuH;
  13.     int            MURetCode = 0;                                /* set return code        */
  14.     
  15.     /****************************************************************************/
  16.     /*  The following are the same all the time.  Not changed by this proc.        */
  17.     /*    Set in the resource definition, instead.                                */
  18.     /*                                                                            */
  19.     /*        AppleMenuID            AboutItem                                        */
  20.     /*                            HelpItem                                        */
  21.     /*                                                                            */
  22.     /*        FileMenuID            NewItem                                            */
  23.     /*                            QuitItem                                        */
  24.     /*                                                                            */
  25.     /*        ProgramMenuID        KudosItem                                        */
  26.     /*                                                                            */
  27.     /****************************************************************************/
  28.     
  29.     
  30.     switch (WType)
  31.         {
  32.         case (ProcMain):
  33.             menuH = (Handle) myMenuHandle[1];                /* File menu            */
  34.                 DisableItem (menuH, CloseItem);
  35.                 DisableItem (menuH, PrintItem);
  36.                 DisableItem (menuH, SaveItem);
  37.                 DisableItem (menuH, SaveAsItem);
  38.             
  39.             menuH = (Handle) myMenuHandle[2];                /* Edit menu            */
  40.                 DisableItem (menuH, CopyItem);
  41.                 DisableItem (menuH, CutItem);
  42.                 DisableItem (menuH, PasteItem);
  43.                 DisableItem (menuH, ClearItem);
  44.         break;
  45.         
  46.         case (ProcText):
  47.             workTEHandle = windTbl[windSub].windTEH[0];        /* get TE handle        */
  48.  
  49.             menuH = (Handle) myMenuHandle[1];                /* File menu            */
  50.                 EnableItem (menuH, CloseItem);
  51.                 
  52.                 if (windTbl[windSub].windTEChanged == TRUE)
  53.                     EnableItem (menuH, SaveItem);
  54.                 else
  55.                     DisableItem (menuH, SaveItem);
  56.                     
  57.                 EnableItem (menuH, SaveAsItem);
  58.                 
  59.                 if ((**workTEHandle).teLength > 0)
  60.                     EnableItem (menuH, PrintItem);
  61.                 else
  62.                     DisableItem (menuH, PrintItem);
  63.             
  64.             menuH = (Handle) myMenuHandle[2];                /* Edit menu            */
  65.                 if (((**workTEHandle).selStart < (**workTEHandle).selEnd)
  66.                         && (**workTEHandle).teLength > 0)
  67.                     {
  68.                     EnableItem (menuH, CopyItem);
  69.                     EnableItem (menuH, CutItem);
  70.                     EnableItem (menuH, ClearItem);
  71.                     }
  72.                 else
  73.                     {
  74.                     DisableItem (menuH, CopyItem);
  75.                     DisableItem (menuH, CutItem);
  76.                     DisableItem (menuH, ClearItem);
  77.                     }
  78.  
  79.                 worklong = GetScrap (NIL,'TEXT',&scrapOffset);    /* desk scrap info    */
  80.                 if (worklong > 0)                            /* if something there    */
  81.                     EnableItem (menuH, PasteItem);            /*   enable "Paste"        */
  82.                 else
  83.                     DisableItem (menuH, PasteItem);            /* else disable "Paste"    */
  84.  
  85.         break;
  86.         
  87.         case (ProcHelp):
  88.             menuH = (Handle) myMenuHandle[1];                /* File menu            */
  89.                 EnableItem (menuH, CloseItem);
  90.                 DisableItem (menuH, PrintItem);
  91.                 DisableItem (menuH, SaveItem);
  92.                 DisableItem (menuH, SaveAsItem);
  93.             
  94.             menuH = (Handle) myMenuHandle[2];                /* Edit menu            */
  95.                 DisableItem (menuH, CopyItem);
  96.                 DisableItem (menuH, CutItem);
  97.                 DisableItem (menuH, PasteItem);
  98.                 DisableItem (menuH, ClearItem);
  99.         break;
  100.         }
  101.             
  102.     return MURetCode;                                        /* return*/
  103. }